﻿#pragma once
#include"core.h"
#include <string>
#include"core.h"
/*
*		目标：
*			1、实现Shader文件的读取
*			2、实现Shader程序的编译链接
*			3、实现Shader编译链接过程的查错
*/
class Shader {
public:
	Shader(const char* vertexPath,const char* fragmentPath);
	~Shader();
	void begin();
	void end();
	enum Operation {
		Compile,
		Link
	};
	void setFloat(const std::string& name, float value);
	void setVector3(const std::string& name, float value1,float value2,float value3);
	void setVector3(const std::string& name, const float* value);
	void setInt(const std::string& name, int value);
	void setMetric4x4(const std::string& name, glm::mat4 mat);
private:
	void checkError(GLuint target, Operation operation);
public:
	GLuint mProgram{ 0 };

};